package com.prj.ufdm.demo.tutorial.jvm;

/**
 * 堆参数设置
 * -Xmn16m               新生代绝对值(新生代=Eden + s1 + s2 ) , s1,s2 也就是 from,to , s1 = s2 
 * -XX:NewRatio          新生代与老年代的比值，如果该值为3，标识新生代与老年带的比值为 1:3 ，新生代占比1/4
 * -XX:SurvivorRatio     Eden与一个Survivor的比值，如果该值为6，即Eden是 s1(或s2）的比例是6，此时Eden占据新生代为6/(6+1+1)
 * -XX:+UseSerialGC      使用串行回收期（在HotSpot VM里，并行系的收集器（UseParallelGC / UseParallelOldGC）默认开启-XX:+UseAdaptiveSizePolicy， 这个配置会在每次Minor GC之后对From和To区进行自适应分配大小）
 * -XX:+PrintGCDetails   打印GC信息（这里主要用来查看堆、栈容量）
 * @author Administrator
 */
public class HeapParam {

	/**
	 * -Xms40m -Xmx40m -XX:NewRatio=3 -XX:SurvivorRatio=6  -XX:+PrintGCDetails -XX:+UseSerialGC
	 * 新生代 = 40M * 1/4 = 10240K = eden(10240K * 6/8) + from(10240K * 1/8) + to(10240K * 1/8) =  7680K + 1280K + 1280K 
	 * 老年代 = 40M * 3/4 = 30720K
	 * @throws InterruptedException
	 */
	public static void main(String[] args) throws Exception {
		System.out.println("maxMemory：" + Runtime.getRuntime().maxMemory()/1024.0/2014+"M");
		System.out.println("freeMemory：" + Runtime.getRuntime().freeMemory()/1024.0/2014+"M");
	}
}
